Instalação do APACHE

1) Execute o comando abaixo para atualizar o sistema

- sudo apt update

2) Instale o Apache2

- sudo apt install apache2

OBS: Se o sistema pedir para fornecer Y/N sempre digite "Y" e continue.

3) Para verificar a versão instalada do Apache:

- apache2 -version

4) Precisamos abrir a porta do Server para garantir o acesso externo. Para isso verifique as aplicações disponíveis

- sudo ufw app list

OBS: (aparecerá Apache, Apache Full, Apache Secure e CUPs)

5) Nós utilizaremos o profile Apache para permitir atividades na porta 80

- sudo ufw allow 'Apache'

6) Para verificar se o APACHE está habilitado no firewall, digite o comando:

- sudo ufw status

7) Verifique se o serviço do Apache está operacional

- sudo systemctl status apache2

=====================================================
=====================================================


Configurar Autenticação por senha com o Apache

1) Instalando o pacote de utilitários do Apache
Vamos começar atualizando nosso servidor e instalando um pacote que precisaremos. Usaremos um utilitário chamado htpasswd, que faz parte do pacote apache2-utils, para criar o arquivo e gerenciar os nomes de usuários e senhas necessários para acessar conteúdo restrito.

- sudo apt update
- sudo apt install apache2-utils

Com isso instalado, temos agora acesso ao comando htpasswd.


2) Criando o arquivo de senha
O comando 'htpasswd' nos permitirá criar um arquivo de senha que o Apache poderá usar para autenticar os usuários. Criaremos um arquivo oculto para esse fim, chamado .htpasswd, dentro do nosso diretório de configuração /etc/apache2.

A primeira vez que usarmos esse utilitário, precisaremos adicionar a opção -c para criar o arquivo passwdfile especificado. Assim, especificamos um nome de usuário (hackone, neste exemplo) - no final do comando - para criar uma entrada dentro do arquivo:

- sudo htpasswd -c /etc/apache2/.htpasswd hackodne

Será solicitado que forneça e confirme uma senha para o usuário.

Deixe o argumento -c para quaisquer usuários adicionais que queira adicionar para que não substitua o arquivo:

- sudo htpasswd /etc/apache2/.htpasswd outro_usuario

Se visualizarmos o conteúdo do arquivo, podemos ver o nome de usuário e a senha criptografada de cada registro:

- cat /etc/apache2/.htpasswd

3) Configurando a autenticação por senha do Apache

Neste passo, precisamos configurar o Apache para verificar esse arquivo, antes de atender nosso conteúdo protegido. Faremos isso diretamente no arquivo do host virtual de um site.

Comece abrindo o arquivo de host virtual para o qual deseja adicionar uma restrição. No nosso exemplo, usaremos o arquivo "000-default.conf", que contém o host virtual padrão instalado através do pacote Apache do Ubuntu. Abra o arquivo com um editor de texto de linha de comando, como o nano:

- sudo nano /etc/apache2/sites-enabled/000.default.conf

Ali dentro, com os comentários removidos, o arquivo deverá ficar parecido com este:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory "/var/www/html">
      AuthType Basic
      AuthName "Restricted Content"
      AuthUserFile /etc/apache2/.htpasswd
      Require valid-user
  </Directory>
</VirtualHost>

Salve e feche o arquivo quando você terminar. Se estiver usando o nano, você pode fazer isso pressionando "CRTL+X" seguido de "Y", e depois, "ENTER"

Antes de reiniciarmos o servidor WEB, vamos verificar a configuração com o seguinte comando: 

- sudo apache2ctl configtest

Se tudo estiver correto e você receber um "Syntax OK" como resultado, reinicie o servidor para implementar sua política de senha. Como o "systemctl" não mostra o resultado de todos os comandos de gerenciamento de serviços, usaremos o "status" para ter certeza de que o servidor está em funcionamento:

- sudo systemctl restart apache2
- sudo systemctl status apache2
